#导入蓝图
from flask import current_app,request,g, jsonify,redirect,render_template,session
from info1 import db
from info1.utils.response_code import RET
from . import profile_blu
from info1.utils.commons import login_required



@profile_blu.route('/info1')
@login_required
def user_info():
    """
   +    个人中心基本页面：
   +    1、尝试获取用户信息
   +    2、如果用户未登录，
   +    3、重定向到项目首页
   +    4、获取用户信息
   +    5、加载模板渲染页面"""

    user = g.user
    if not user:
        return redirect('/')

    data = {
        'user':user.to_dict(),
        'base_info':base_info
    }
    #加载末班文件
    return render_template('news/user.html',data=data)


@profile_blu.route('/base_info',methods = ['GET','POST'])
@login_required
def base_info():
#     """
#        修改用户基本信息
#        1、如果为get请求，加载模板页面
#        2、如果pos请求
#        3、获取参数，nick_name,signature,gender
#        4、判断参数的完整性
#        5、检查gender必须非男即女
#        6、使用user保存用户信息
#        7、提交数据到数据库中
#        8、返回结果
#
#        """
    user = g.user
    if not user:
        return jsonify(errno=RET.SERVERERR,errmsg='用户未登录')
    #判断请求方法
    if request.method == 'GET':
        data = {
            'user':user.to_dict()
        }
        return render_template('news/user_base_info.html',data=data)
    #获取参数
    nick_name = request.json.get('nick_name')
    signature = request.json.get('signature')
    gender = request.json.get('gender')
    #判断参数的完整性
    if not all([nick_name,signature,gender]):
        return jsonify(errno=RET.PARAMERR,errmsg ='参数缺失')
    # #判断参数性别是否符合要求

    if gender not in ['MAN','WOMEN']:
        return jsonify(errno=RET.PARAMERR,errmsg='参数格式错误')

    #保存用户信息
    user.nick_name = nick_name
    user.signature = signature
    user.gender = gender
    #提交数据
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e :
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=RET.DBERR,errmsg='保存数据失败')
    #修改redis缓存中的昵称
    session['nick_name'] = nick_name
    #返回结果
    return jsonify(errno=RET.OK,errmsg='OK')

# 头像设置
"""
获取用户上传的图片


"""
@profile_blu.route('/pic_info',methods = ['GET','POST'])
@login_required
def pic_info():
    user = g.user
    return render_template('news/user_pic_info.html',data={'user_info':user.to_dict()})

















